// Описание методов внутри интерфейса класса
// Удобство: методы можно реализовывать сразу после объявления
// Неудобство: для больших классов интерфейс трудно читается
type 
  Person = class
  private
    // Поля класса, как правило, приватны. Доступ к ним - через методы и свойства
    name: string;
    age: integer;
  public
    // Конструктор неявно имеет имя Create
    constructor (n: string; a: integer);
    begin
      name := n; age := a;
    end;
    procedure Print;
    begin
      writeln('Имя: ',name,'  Возраст: ',age);
    end;
  end;

var p,p1: Person;

begin
  p := new Person('Иванов',20); // Новый синтаксис вызова конструктора (рекомендуется)
  p.Print;
  p1 := Person.Create('Попов',19); // Старый синтаксис вызова конструктора (не рекомендуется)
  p1.Print;
  // Деструкторы отсутствуют, вместо них - автоматическая сборка мусора
end.